package com.zzs.covid19_view.common.entity;

import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.Objects;

/**
 * 文件名: Statistics
 * 创建者: zzs
 * 创建时间: 2021/8/11 14:18
 * 描述: 总数据
 */
@Data
@ToString
public class Statistics implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private String id;

    /**
     * 创建时间
     */
    private Integer createTime;

    /**
     * 修改时间
     */
    private Integer modifyTime;

    /**
     * 感染源
     */
    private String infectSource;

    /**
     * 传播方式
     */
    private String passWay;

    /**
     * 图片url(全国疫情地图)
     */
    private String imgUrl;

    /**
     * 日常图片pic(全国疫情趋势图)
     */
    private String dailyPic;

    /**
     * 总结，概要
     */
    private String summary;

    /**
     * 是否删除
     */
    private String deleted;

    /**
     * 数量备注(全国 确诊 887 例 疑似 1076 例 治愈 35 例 死亡 26 例)
     */
    private String countRemark;

    /**
     * 病毒
     */
    private String virus;

    /**
     * 备注1
     */
    private String remark1;

    /**
     * 备注2
     */
    private String remark2;

    /**
     * 备注3
     */
    private String remark3;

    /**
     * 备注4
     */
    private String remark4;

    /**
     * 备注5
     */
    private String remark5;

    /**
     * 一般说明
     */
    private String generalRemark;

    /**
     * 累计确诊
     */
    private Integer confirmedCount;

    /**
     * 疑似数量(又称境外输入)
     */
    private Integer suspectedCount;

    /**
     * 累计治愈
     */
    private Integer curedCount;

    /**
     * 累计死亡
     */
    private Integer deadCount;

    /**
     * 现存无症状数量
     */
    private Integer seriousCount;

    /**
     * 疑似数量新增(又称境外输入新增)(较昨日)
     */
    private Integer suspectedIncr;

    /**
     * 累计确诊新增(较昨日)
     */
    private Integer confirmedIncr;

    /**
     * 累计治愈新增(较昨日)
     */
    private Integer curedIncr;

    /**
     * 累计死亡新增(较昨日)
     */
    private Integer deadIncr;

    /**
     * 现存无症状数量新增(较昨日)
     */
    private Integer seriousIncr;

    /**
     * 现存确诊
     */
    private Integer currentConfirmedCount;

    /**
     * 现存确诊新增
     */
    private Integer currentConfirmedIncr;


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Statistics that = (Statistics) o;
        return confirmedCount.equals(that.confirmedCount) &&
                suspectedCount.equals(that.suspectedCount) &&
                curedCount.equals(that.curedCount) &&
                deadCount.equals(that.deadCount) &&
                seriousCount.equals(that.seriousCount) &&
                currentConfirmedCount.equals(that.currentConfirmedCount);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, createTime, modifyTime, infectSource, passWay, imgUrl, dailyPic, summary, deleted, countRemark, virus, remark1, remark2, remark3, remark4, remark5, generalRemark, confirmedCount, suspectedCount, curedCount, deadCount);
    }

}
